走到現在已經完成了有:
有了這些總算能夠進入開發環節啦!
接下來的部分就是在開發過程中為了完成功能,我碰到的各種狀況,做了那些嘗試,最後又是怎麼解決。
那因為細節比較多可能會出現各種錯誤,所以就請各位大大多多指正拉!
因為開發階段的事情比較多,所以會每天完成一個小階段性目標。
今天的幾個目標
建立虛擬環境並開啟
python -m venv env
.\env\Script\activate
安裝套件
flask
pip install flask
連接 MySQL
pip install mysqlclient
flask-SQLAlchemy
pip install Flask-SQLAlchemy
RESTful API
pip install flask-restx
JWT
pip install Flask-JWT-Extended
CORS
pip install Flask-Cors
簡單測試
建立簡單 server route 並使用 python app.py 開啟本地伺服器
連線路由確認回傳狀況
app > extensions.py
from flask_sqlalchemy import SQLAlchemy
from flask_restx import Api
from flask_jwt_extended import JWTManager
from flask_cors import CORS
# 創建實例
api = Api()
db = SQLAlchemy()
jwt = JWTManager()
cors = CORS()
app > config.py
import os
import datetime
class Config():
TEMPLATES_AUTO_RELOAD = True
ERROR_404_HELP = False
SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URI') # 部署環境使用
# SQLALCHEMY_DATABASE_URI = "mysql://使用者:密碼@localhost/todo" # 開發環境使用
SQLALCHEMY_TRACK_MODIFICATIONS = False
JWT_SECRET_KEY = os.environ.get('JWT_SECRET_KEY') # 部署環境使用
# JWT_SECRET_KEY = "this secret key" # 開發環境使用
JWT_ACCESS_TOKEN_EXPIRES = datetime.timedelta(minutes=60)
JWT_TOKEN_LOCATION = ["headers", "cookies"]
JWT_CSRF_IN_COOKIES = False
JWT_COOKIE_SECURE = True # Secure 屬性
JWT_COOKIE_SAMESITE = 'None' # SameSite 屬性
app > init.py
from flask import Flask
from .extensions import api, db, jwt, cors
from .config import Config
def create_app(): # 使用 def create_app() 主要是後面部署時使用到 Gunicorn 需要的設定
app = Flask(__name__)
app.config.from_object(Config)
api.init_app(app)
db.init_app(app)
jwt.init_app(app)
cors.init_app(app)
return app